package main

// 70. 爬楼梯
func main() {
	b := climbStairs(4)
	println(b)
}

func climbStairs(n int) int {
	minLen := 2
	if n > minLen {
		minLen = n
	}
	pre := make([]int, minLen)
	pre[0] = 1
	pre[1] = 2
	for i := 2; i < n; i++ {
		pre[i] = pre[i-1] + pre[i-2]
	}
	return pre[n-1]
}

// 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
//
//每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢？
//
//
//
//示例 1：
//
//输入：n = 2
//输出：2
//解释：有两种方法可以爬到楼顶。
//1. 1 阶 + 1 阶
//2. 2 阶
//示例 2：
//
//输入：n = 3
//输出：3
//解释：有三种方法可以爬到楼顶。
//1. 1 阶 + 1 阶 + 1 阶
//2. 1 阶 + 2 阶
//3. 2 阶 + 1 阶
